1. Field of the Invention
The present invention relates to the field of graphics and image processors. More particularly, the present invention relates to a system and method for performing lossless wavelet-based image transformations with minimal bit precision.
2. Description of Related Art
Due to continuing advancements and use of digital imaging, systems are now experiencing difficulties in supporting the processing, transmission and storage of digital images in a cost-effective manner. For example, in order to display a non-compressed, color digital image on an archaic 640.times.480 pixel display screen, an enormous amount of data is required, approximately 921,600 bytes of storage when three (3) bytes are assigned for each pixel of the color digital image. Recently developed display screens are capable of displaying a 2000.times.2000 pixel image which would require about twelve (12) megabytes of storage. The amount of data required to transfer and store digital images, especially digital color images, is difficult to support and expensive to maintain. As a result, image compression, which reduces the amount of data required to represent a digital image, has become an integral part in the transmission and storage of digital images.
Typically, image compression is performed by an input image (e.g., a 640.times.480 color digital image) initially undergoes color space conversion. This involves converting Red, Green, Blue (RGB) information associated with each pixel of the input image into luminance and chrominance referred to as "YUV" values. Such conversion usually is usually performed on each pixel resulting in the conversion of successive blocks of pixels (individually referred to as a "pixel block") associated with the input image. These pixel blocks may be configured with any selected sizing (e.g., 8.times.8 pixel blocks).
For an 8.times.8 pixel block, each Y, U, and V value undergoes a compaction frequency transformation. This results in matrices of sixty-four (64) transmission coefficients including (a) a primary transmission coefficient and (b) sixty-three (63) secondary transmission coefficients for each of the Y, U and V values. The primary transmission coefficient (referred to herein as a "DC coefficient") constitutes the lowest spatial frequency associated with the pixel block. The secondary transmission coefficients (individually referred to as "AC coefficients") constitute higher spatial frequencies necessary to show degrees of contrast. Examples of compaction frequency transformations include a well-known Discrete Cosine Transform (DCT) and a wavelet-based image transformation.
Referring to FIGS. 1A-1C, an example of a conventional wavelet-based image transformation is described below. If supporting conversion of successive pixel blocks, each pixel block 100 (e.g., an 8.times.8 pixel block in this example) is sub-divided into sixteen 2.times.2 pixel blocks 110-125. For clarity sake, the operations performed by the conventional wavelet-based image transmission scheme will be discussed in reference to calculating the luminance (Y-value) for pixel block 100 starting with first pixel block 110. First pixel block 110 includes Y-values referred to as P.sub.00, P.sub.01, P.sub.10 and P.sub.11 in which each Y-value is a data byte (i.e., 8-bits) representing an unsigned number ranging in value from 0-255. The calculation of chrominance (U-values and V-values) may be performed in a similar manner, but these values would be represented as signed numbers ranging from -127 to 128.
First, P.sub.00, P.sub.01, P.sub.10 and P.sub.11 are added together to produce a preliminary DC coefficient (referred to as "C1") of first pixel block 110. The preliminary DC coefficient would require 10-bits of memory because 2-bit precision is required to support the addition of four (4) 8-bit values. In this example, three (3) first-level AC coefficients (referred to as D1-D3) of first block 110 are also produced as set forth in FIG. 1B. Each first-level AC coefficient requires 10-bits of memory. This process is continued for each of the other 2.times.2 pixel blocks 111-113 which, along with first pixel block 110, form a 4.times.4 pixel block 130. As a result, four (4) preliminary DC coefficients (C1-C4) and twelve (12) first-level AC coefficients (D1-D12) are produced, where preliminary DC coefficients (C2-C4) and their respective first-level AC coefficients D4-D12 are calculated in the same fashion as C1 and D1-D3 associated with first pixel block 110.
Next, preliminary DC coefficients (C1-C4) would be grouped together as a 2.times.2 pixel block to produce a DC coefficient of 4.times.4 pixel block 130 (referred to herein as a "second-level DC coefficient" C1.sub.2d) and three (3) second-level AC coefficients (D13-D15) as shown in FIG. 1C. The memory space required to support each second-level DC coefficient and second-level AC coefficients would be 12-bits since 4-bit precision is necessary.
Thereafter, as an iterative process, other second-level DC coefficients each 4.times.4 pixel block 130-133 of 8.times.8 pixel block 100 are calculated, and thereafter, are grouped in order to produce a single DC coefficient being a maximum 14-bits in length (i.e., 6-bit precision) and sixty-three (63) AC coefficients including three (3) third-level AC coefficients being 14-bits in length, twelve (12) second-level AC coefficients being 12-bits in length, and forty-eight (48) first-level AC coefficients being 10-bits in length. The increasing bit size of the coefficients poses two disadvantages.
A first disadvantage is that this scheme of wavelet-based image transformation does not perform efficient compression. This is due to the fact that AC/DC coefficients representative of larger pixel blocks require extra bits, causing lower spatial frequency coefficients to contain more bits than necessary.
A second disadvantage is that if compression is performed in hardware, adder circuitry supporting larger and larger bit widths is needed for each iteration in calculating DC and AC coefficients. Alternatively, adders supporting a universal bit width may be implemented, provided this bit width supports the maximum bit precision needed. However, such an architecture would unnecessarily increase processing time and overall cost of the system.
Accordingly, there exists a need for a system and method for improving the performance of losses, memory-efficient wavelet-based image transformation caused by substantial reduction in bit precision requirements.